package vip.zcn.mrn.util;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

/***
 * 密码工具类
 * @author 张灿能
 */
public class PasswordUtil {

    /**
     * BCryptPasswordEncoder 是 Spring Security 提供的密码加密工具类，
     * 使用 BCrypt 强哈希算法对密码进行编码，具有良好的安全性。
     */
    private static final BCryptPasswordEncoder encoder = new BCryptPasswordEncoder();

    /**
     * 对原始密码进行加密编码
     * @param rawPassword 原始密码（明文）
     * @return 加密后的密码
     */
    public static String encode(String rawPassword) {
        return encoder.encode(rawPassword);
    }

    /**
     * 验证原始密码与已编码密码是否匹配
     * @param rawPassword 原始密码（明文）
     * @param encodedPassword 已编码的密码
     * @return 如果匹配返回 true，否则返回 false
     */
    public static boolean matches(String rawPassword, String encodedPassword) {
        return encoder.matches(rawPassword, encodedPassword);
    }
}
